package com.pe.pgn.clubpgn.domain;

import java.math.BigDecimal;
import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import org.hibernate.annotations.Type;
import org.springframework.format.annotation.DateTimeFormat;


@Entity
@Table(name = "clpd_tope")
public class ClpdTope extends CamposAuditoria {
	/**
	 * 
	 */
	private static final long serialVersionUID = -3987835746926964876L;
	private Long id;
	private String deTope;
	private String stTipoTope;
	private Boolean stEnviado;
	private Long coClienteEmpresa;
	private BigDecimal vaPorcentaje;
	private Boolean stTope;
	
	private BigDecimal vaMontoCalculado;
	
    @Id
    @Column(name="id")
    @SequenceGenerator(name="seqtope", sequenceName="seq_tope")
    @GeneratedValue(generator="seqtope")  
	public Long getId() {
		return id;
	}
    @Column(name = "de_tope", nullable = true, length = 50)
	public String getDeTope() {
		return deTope;
	}
    @Column(name = "st_tipo_tope", nullable = true, length = 1)
	public String getStTipoTope() {
		return stTipoTope;
	}    
    @Column(name = "st_enviado", nullable = true)
	@Type(type = "yes_no")    
	public Boolean getStEnviado() {
		return stEnviado;
	}    
    @Column(name = "co_cliente_empresa", nullable = true, length = 10)
	public Long getCoClienteEmpresa() {
		return coClienteEmpresa;
	}
    @Column(name = "va_porcentaje")
	public BigDecimal getVaPorcentaje() {
		return vaPorcentaje;
	}
    @Column(name = "st_tope", nullable = false)
	@Type(type = "yes_no")    
	public Boolean getStTope() {
		return stTope;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public void setDeTope(String deTope) {
		this.deTope = deTope;
	}
	public void setStTipoTope(String stTipoTope) {
		this.stTipoTope = stTipoTope;
	}
	public void setCoClienteEmpresa(Long coClienteEmpresa) {
		this.coClienteEmpresa = coClienteEmpresa;
	}
	public void setVaPorcentaje(BigDecimal vaPorcentaje) {
		this.vaPorcentaje = vaPorcentaje;
	}
	public void setStTope(Boolean stTope) {
		this.stTope = stTope;
	}	
	public void setStEnviado(Boolean stEnviado) {
		this.stEnviado = stEnviado;
	}
	@Transient
	public BigDecimal getVaMontoCalculado() {
		return vaMontoCalculado;
	}
	public void setVaMontoCalculado(BigDecimal vaMontoCalculado) {
		this.vaMontoCalculado = vaMontoCalculado;
	}
	public static long getSerialversionuid() {
		return serialVersionUID;
	}
	@Column(name = "co_usuario_creador", updatable = false, nullable = false, length = 30)
	public String getCoUsuarioCreador() {
		return coUsuarioCreador;
	}

    @Column(name = "da_fecha_creacion", updatable = false, nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaCreacion() {
		return daFechaCreacion;
	}

	@Column(name = "co_usuario_modificador", length = 30)
	public String getCoUsuarioModificador() {
		return coUsuarioModificador;
	}

    @Column(name = "da_fecha_modificacion")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaModificacion() {
		return daFechaModificacion;
	}       
	@Override
	public boolean equals(Object o) {
		return false;
	}

	@Override
	public int hashCode() {
		return 0;
	}

	@Override
	public String toString() {
		return   this.deTope;
	}	
}
